Overriding Non-Abstract Method with Abstract Method (ONAMAM)

Description:

ONAMAM checks for the overriding of non-abstract methods by abstract methods in a subclass.

Incorrect:

abstract class Shape {
    internal virtual void draw() {}
}

abstract class Curve : Shape {
    internal abstract override void draw();
}

Correct:

abstract class Shape {
    internal virtual void draw() {}
}

abstract class Curve : Shape {
    internal override void draw() {}
}

or

abstract class Shape { internal abstract void draw(); } abstract class Curve : Shape { internal abstract override void draw(); }